<?php
namespace app\common\command;

use think\console\Command;
use think\console\Input;
use think\console\input\Argument;
use think\console\Output;

class Task extends Command
{
    protected function configure()
    {
        //设置名称为task
        $this->setName('task')
            //增加一个命令参数
            ->addArgument('action', Argument::OPTIONAL, "action");
    }

    protected function execute(Input $input, Output $output)
    {
        //获取输入参数
        $action = trim($input->getArgument('action'));

        // 初始化EasyTask
        $task = new \EasyTask\Task();

        // 设置项目名称
        $task->setPrefix('Think');

        // 设置后台运行
        $task->setDaemon(true);

        // 设置日志保存目录
        $task->setRunTimePath('./runtime/');

        // 添加闭包任务,开2个进程5s执行1次访问网址
//        $task->addFunc(function () {
//            @file_get_contents('http://xingxinghan.cn/?id=6');
//        }, 'Curl_1', 5, 2);

        // 添加执行tp默认控制器的方法,开1个进程10s执行1次访问网址
        $task->addClass('\app\Admin\controller\Index', 'index', 'Curl_2', 10, 1);

        // 根据命令执行
        if ($action == 'start')
        {
            $task->start();
        }
        if ($action == 'status')
        {
            $task->status();
        }
        if ($action == 'stop')
        {
            $task->stop();
        }
    }
}